Scenario

Builer Pattern
빌더 패턴은 생성이 까다로운 객체를 처리하기 위해 사용하는 패턴이다.
(생성자 호출 코드 단 한줄로 생성할 수 없는 객체를 처리하기 위해 객체 생성하는 코드를 분리하여 관리)
struct HtmlElement{
string name;
string text;
vector<HtmlElement> elements;
HtmlElement(){}
HtmlElement(const string& name, const string& text): name(name), text(text) {}
string str(int indent=0) const {
//
}
};
//
string words[]={"hello", "world"};
HtmlElement list{"ul", ""};
for(auto w: words) list.elements.emplace_back{HtmlElement{"li", w}};
printf(list.str().c_str());
OOP에 기반하여 항목 리스트를 표현한다.
HtmlElements을 생성하는 작업을 더 편리하기 위해 빌더 패턴을 활용한다.